package com.wu.findkthottail;

/**
 * 输入一个链表，输出该链表中倒数第k个结点
 */
class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}

/**
 * 思路：
 * 1.使用两个指针：index、k
 * 2.index:用于获取链表长度
 * 3.index-k即为倒数第k个节点
 */
public class Solution {
    public ListNode findKthoTTail(ListNode head, int k) {
        if (head == null || k <= 0) {
            return null;
        }
        int index = 1;
        ListNode cur = head;
        while (cur.next != null) {
            index++;
            cur = cur.next;
        }
        /**如果要找的索引大于链表长度，直接退出*/
        if (k > index) {
            return null;
        }
        ListNode res = head;
        for (int i = 0; i < index - k; i++) {
            res = res.next;
        }
        return res;
    }
}